﻿(function ($) {
    // Thông báo phương thức tới jQuery
    $.fn.extend({
        showhideblock: function () {

            // Kiểm tra từng element và xử lý
            return this.each(function () {

                //Thêm mã xử lý ở đây

            });
        }
    });
})(jquery);

/* xay dưng menu chuc nang, hien thi popup */
jQuery.fn.fmenu = function (tables) {
    var obj = this;
    var idx = -1;
    if (tables != undefined && tables != "") {
        var tbls = tables.split(";");
        for (i = 0; i < tbls.length; i++) {
            grid_checkbox("table." + tbls[i] + " input[type='checkbox']");
        }
    }

    $("span", obj).each(function (index) {
        $(this).attr("idx", index);

        if ($("." + $(this).attr("box")) != undefined) {
            $("div." + $(this).attr("box")).addClass("fmenu-box");
        }

        if ($.cookie("fbox") != null && $.cookie("fbox") == $(this).attr("box")) {
            $(this).addClass("active");
        }
    });

    //alert($.cookie('the_cookie'));
    if ($.cookie("fbox") != null) {
        $("div." + $.cookie("fbox")).show();
    }

    obj.addClass('fmenu');
    $("<div style='clear:both'></div>").insertAfter(".fmenu ul");

    //alert(obj.html());
    obj.find("span").bind('click', function () {
        if ($(this).hasClass("lock") == true) {
            return false;
        }

        //if ($(this).attr("table") != undefined && $(this).attr("box") != undefined && $("." + $(this).attr("box")).is(':hidden'))
        if ($(this).attr("table") != undefined && $(this).attr("box") != undefined && $(this).hasClass("active") == false) {
            var id = "";
            $("table." + $(this).attr("table") + " input[type='checkbox']:not(:first):checked").each(function () {
                id += $(this).attr("id") + ";";
            });

            $("input[id$='hid" + $(this).attr("box") + "']").val(id);
            if (id == "") {
                alert("Chọn dữ liệu");
                return;
            }
        }

        $("span", obj).removeClass("active");
        $(".fmenu-box").hide();
        $("table." + $(this).attr("table") + " input[type='checkbox']").removeClass("lock");
        if (parseInt($(this).attr("idx")) != idx) {
            $(this).addClass("active");
            idx = parseInt($(this).attr("idx"));
            $("div." + $(this).attr("box")).show();

            $("div." + $(this).attr("box") + " p.title").text($(this).attr("title"));
            //alert($(this).attr("tag"));
            $("input[id$='hidColumn']").val($(this).attr("tag"));

            $("table." + $(this).attr("table") + " input[type='checkbox']").addClass("lock");
        }
        else {
            idx = -1;
        }
    })
    return this;
}

$.extend({getParamUrl:function(url, key)
{
    key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+key+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( url );
    if( results == null )
        return "";
    else
        return decodeURIComponent(results[1].replace(/\+/g, " "));
}});

$.extend ({newPopupWindow:function(file, winname,width,height)
{
    var ileft = (document.width - width)/2;
    var itop = ($(window).height() - height)/2;
    
    msgWindow = open(file, winname, 'resizable=yes, width=' + width + ', height=' + height + ',left=' + ileft + ',top=' + itop + ', titlebar=no, toolbar=no, scrollbars=yes');
    if (msgWindow.opener == null) msgWindow.opener = self;
}});

jQuery.fn.swapWith = function(to) {
    return this.each(function() {
        var copy_to = $(to).clone(true);
        var copy_from = $(this).clone(true);
        $(to).replaceWith(copy_from);
        $(this).replaceWith(copy_to);
    });
};

jQuery.fn.removeAttributes = function() {
  return this.each(function() {
    var attributes = $.map(this.attributes, function(item) {
      return item.name;
    });
    var img = $(this);
    $.each(attributes, function(i, item) {
    img.removeAttr(item);
    });
  });
}

/*
// Replaces all instances of the given substring.
String.prototype.replaceAll = function(
strTarget, // The substring you want to replace
strSubString // The string you want to replace in.
){
var strText = this;
var intIndexOfMatch = strText.indexOf( strTarget );
 
// Keep looping while an instance of the target string
// still exists in the string.
while (intIndexOfMatch != -1){
// Relace out the current instance.
strText = strText.replace( strTarget, strSubString )
 
// Get the index of any next matching substring.
intIndexOfMatch = strText.indexOf( strTarget );
}
 
// Return the updated string with ALL the target strings
// replaced out with the new substring.
return( strText );
}
*/
$(function(){
    // tuyet noel 2010
    /*
    $().jSnow({
        flakes:15, 
        flakeMaxSize:15, 
        flakeMinSize:8, 
        flakeCode:["&bull;",
                   "/images/snow/snow.gif",
                   "/images/snow/snowT.gif",
                   "/images/snow/c.gif",
                   "/images/snow/c2.gif",
                   "/images/snow/g.gif"
                   ], 
        flakeColor:["#fff","#36B5CE"],interval:50
    });
    */
    
    // -------------
    layout_table_grid();
    layout_table_freeze();
    
    loadDatepicker(".date");
    loadDateTimepicker(".datetime");
    loadDateTimepickerFull(".datetimefull");
    loadTimepicker(".time");
    $(".numeric-int").numeric();
    
    
    t();
    
    function t()
    {
        $("div.button").each(function(i){
            var t = $("input", $(this)).length;
            if (t == 0)
                $(this).hide();
        });
        
        $("span.button").each(function(i){
            var t = $("input", $(this)).length;
            if (t == 0)
                $(this).hide();
        });
    }
    if ($("table.grid").hasClass("nohover") == false)
    {
        $("table.grid tr:not(:first)").hover(
            function(){
                if ($(this).attr("hover") != "false")
                {
                    $(this).addClass("highlight");
                }
            },
            function(){
                if ($(this).attr("hover") != "false")
                {
                    $(this).removeClass("highlight");
                }
            }

        );
    }
    
    if ($(this).hasClass("nohover") == false)
    {
        $("table.hover tr:not(:first)").hover(
            function(){
                $(this).addClass("highlight");
                
            },
            function(){
                $(this).removeClass("highlight");
            }

        );
    }
    
    $("table.alter tr:not(:first) tr:odd").addClass("odd");
    $("table.alter tr:even").addClass("even");
    
    $("div.freeze-col table.grid-freeze tbody tr:not(:first) tr:odd").addClass("odd");
    $("div.freeze-col table.grid-freeze tbody tr:even").addClass("even");
    
    $("div.freeze table.grid-freeze tbody tr:not(:first) tr:odd").addClass("odd");
    $("div.freeze table.grid-freeze tbody tr:even").addClass("even");
     
    function layout_table_grid()
    {
        var mheight = 0;
        $("table.grid th").each(function(i){
            var tt = $(this).html();
            tt = $.trim(tt);
            $(this).html("<div><div><h2>" + tt + "</h2></div></div>").width($(this).width());
            
            //alert($(this).width());
            if (mheight == 0)
                mheight = $(this).height();
            else
            {
                if ($(this).height()>mheight)
                    mheight = $(this).height();
            }
        });
        //alert($("table.grid th").height());
        //alert($("table.grid th").height());
        //$("table.grid th h2").height(mheight - 5);
        //$("table.grid th h2").height($("table.grid th").height() - 19);
        $("table.grid th h2").height(mheight);
        
        /* grid advance */
        var grid = "table.grid, table.print";
        
        if ($(grid).length > 0)
        {
            var position = $(grid).position();
            
            
            $(grid).each(function(index){
                var clss = "tool" + index;
                var winname = "wintool" + index;
                var popup = "<div class='grid-tool " + clss + "'><ul>";
                popup += "<li class='html'></li>";
                popup += "</ul><div style='clear:both'></div></div>";
                var ob = $(popup);
                ob.find(".html").click(function(){
                    $.newPopupWindow("/Tools/view.htm", winname, 800, $(window).height());
                    ob.hide();
                });
                $(this).addClass(winname);
                
                $(ob).insertBefore($(this));
                
                $(grid + " th, ." + clss).hover(
                    function(){ // in hover
                        position = $(grid).position();
                        //console.log(position.top);
                        $("." + clss).offset({top: position.top - $("." + clss).height() + 3});
                        $("." + clss).show();
                    },
                    function(){ // out hover
                        $("." + clss).hide();
                    }
                );
            });
            /*
            popup = $(popup);
            
            popup.find(".html").click(function(){
                $.newPopupWindow("/Tools/view.htm", "mypopup", 800, $(window).height());
                popup.hide();
            });
            
            $(popup).insertBefore(grid);
            $(grid + " th, div.grid-tool").hover(
                function(){ // in hover
                    position = $(grid).position();
                    //console.log(position.top);
                    popup.offset({top: position.top - popup.height() + 3});
                    popup.show();
                },
                function(){ // out hover
                    popup.hide();
                }
            );
            */
        }
    }
    
    function layout_table_freeze()
    {
        if ($("div[id$='freeze']").length > 0)
        {
            var w = 0;
            if ($("#content-1col").length > 0)
                w = $("#content-1col").width();
            else
                w = $("td.container").width();
            var fw = $(".freeze-col").width();
            var gwidth = 0;
            
            $("div.freeze table.grid-freeze tr:first th").each(function(){
                //alert($(this).attr("width"));
                if (isNaN(parseInt($(this).attr("width"))))
                {
                    gwidth += $(this).width();
                    //alert($(this).width());
                }
                else
                {
                    gwidth += parseInt($(this).attr("width"));
                    //alert(parseInt($(this).attr("width")));
                }
                //alert($(this).attr("width"));
                //gwidth += $(this).width();
                
            });
            
            var h1 = $("div.freeze-col .grid-freeze thead tr").height();
            var h2 = $("div.freeze .grid-freeze thead tr").height();
            
            if (h1 > h2)
            {
                $("div.freeze-col .grid-freeze thead tr").height(h1);
                $("div.freeze .grid-freeze thead tr").height(h1);
            }
            else
            {
                $("div.freeze-col .grid-freeze thead tr").height(h2);
                $("div.freeze .grid-freeze thead tr").height(h2);
            }
            
            if (gwidth > (w - fw - 29))
                $("div.freeze table.grid-freeze").width(gwidth);
            
            $(".freeze").width(w - fw - 29);
            
            var r1 = 0;
            var r2 = 0;
            
            $("div.freeze table.grid-freeze tbody tr").each(function(i){
                h1 = $("div.freeze-col table.grid-freeze tbody tr.idx" + i).height();
                h2 = $("div.freeze table.grid-freeze tbody tr.idx" + i).height();
                
                if (h1 > h2)
                {
                    $("div.freeze-col table.grid-freeze tbody tr.idx" + i).height(h1);
                    $("div.freeze table.grid-freeze tbody tr.idx" + i).height(h1);
                }
                else
                {
                    $("div.freeze-col table.grid-freeze tbody tr.idx" + i).height(h2);
                    $("div.freeze table.grid-freeze tbody tr.idx" + i).height(h2);
                }
            });
            
            if ($.browser.msie) {
                var h = $("#freeze div.freeze").height();
                $("#freeze div.freeze").height(h + 20);
            }
            
            /* --- fix chieu cao cua body --- */
            //alert($("#freeze").position().top);
            //alert($(window).height());
            /*
            if ($("#freeze").height() + $("#freeze").position().top > $(window).height())
            {
                h = $(window).height() - $("#freeze").position().top - 20;
                //alert(h);
                $("table.grid-freeze tbody").height(h);
                $("table.grid-freeze tbody").css("overflow", "hidden");
                
                $(".freeze").width(w - fw - 29 - $(".freeze-slider").width() - 5);
                
                $(".freeze-slider").height(h);
                $(".freeze-slider").show();
                $(".freeze-slider").css("margin-top", h1);
                
                var row = $("div.freeze table.grid-freeze tbody tr").length;
                
                row = row - Math.round(h / $("table.grid-freeze tbody tr").height()) + 2;
                
                $(".freeze-slider").slider({
			        orientation: "vertical",
			        range: "min",
			        max: row,
			        min: 0,
			        value: row,
			        slide: function(event, ui) {
			            //$("#sd").text(ui.value);
			            if (ui.value >= 0)
			            {
			                var val = row - ui.value;
				            $("#sd").text(ui.value);
    				        /*
				            $("div.freeze table.grid-freeze tbody tr").show();
				            $("div.freeze table.grid-freeze tbody tr").each(function(i){
				                if (i < val)
				                {
				                    $(this).hide();
    				                
				                }
				            });
    				        
    				        $("div.freeze table.grid-freeze tbody tr").show();
				            $("div.freeze-col table.grid-freeze tbody tr").show();
				            
				            if (val > 1)
				            {
				                $("div.freeze-col table.grid-freeze tbody tr:lt(" + (val - 1) + ")").hide();
				                $("div.freeze table.grid-freeze tbody tr:lt(" + (val - 1) + ")").hide();
				            }
				            
				            /*
				            $("div.freeze-col table.grid-freeze tbody tr").each(function(i){
				                if (i < val)
				                {
				                
				                    //$(this).hide();
    				                //$("table.grid-freeze tbody tr.idx" + i).hide();
				                }
				            });
				            
				        }
			        }
		        });
            }
            */
            //alert($("div.freeze table.grid-freeze tr:not(:first)").length);
        }
    }
    
    /* --- Xu ly menu --- */
    loadMenu();
    $(".sidebar-slide").click(function(){            
        if($(this).hasClass("loaded") == true) return;
        ShowMenu($(this));
    });
    
    function loadMenu()
    {
        var f = false;
        if ($.cookie("slidemenu") != null)
        {          
            $("#menupanel .sidebar-slide").each(function(i){
                //kiem tra menu hien tai de load menu con
                if ($(this).attr("id") == $.cookie("slidemenu"))
                {
                    $id =  $(this).attr("id");
                    // dua menu hien tai len dau tien
                    $(".sidebar-slide:first").swapWith($(this));                       
                     //goi ajax load menu hien tai len
                    ShowMenu( $(".sidebar-slide:first"));
                    f = true;                   
                    loadMenu2($("#menupanel ." +  $id + " .title"));
                    return;
                }
                
            });
        }
    }
    
    function loadMenu2(obj)
    {
        if (obj.next("div.sidebar-content").is(":visible") == true)
        {
            obj.next("div.sidebar-content").slideToggle(0);
        }
        else
        {
            $("#menupanel .sidebar-slide div.sidebar-content").hide(0);
            $("#menupanel .sidebar-slide .title h2").css({ backgroundImage: "url(/images/icons/left.png)"});
            $("h2", obj).css({ backgroundImage: "url(/images/icons/down.png)"});
            obj.next("div.sidebar-content").slideToggle(0).siblings("div.sidebar-content").slideUp(0);
        }
    }
    
    $("#menupanel .sidebar-slide .title").click(function()
    {   
        loadMenu2($(this));
	});
	//load ajax cho cac menu con ben trong
	function ShowMenu(ob)
    {
        
        var parentid=ob.attr("id");
        
        var sidebar_content=ob.find(".sidebar-content");
        sidebar_content.html("<center><img src='/images/ajax-loader2.gif'/></center>");
        var data="id="+parentid;
        var _url = "/Portal/Control/MenuLoader.aspx";
        $.ajax({
            url: _url,
            data: data,
            cache: false,                
            success: function(html){
                var obj=$(html);
                sidebar_content.html(obj.find("div.subMenu").html());
                ob.addClass("loaded");                    
            },
            error: function(){
            }
        });
    }
});

function loadDatepicker(element)
{
    $(element).datepicker({
        showOn: 'both'
        , buttonImage: '/images/button/calendar-up.gif'
        , buttonImageOnly: true
        , dateFormat: 'dd/mm/yy'
        , clearText: ''
        , firstDay: 1
        , dayNames: ['Chủ nhật', 'Thứ hai', 'Thứ ba', 'Thứ tư', 'Thứ năm', 'Thứ sáu', 'Thứ bảy']
        , dayNamesMin: ['CN', 'Hai', 'Ba', 'Tư', 'Năm', 'Sáu', 'Bảy']
        , dayNamesShort: ['CN', 'Hai', 'Ba', 'Tư', 'Năm', 'Sáu', 'Bảy']
        , monthNames: ['Tháng 1','Tháng 2','Tháng 3','Tháng 4','Tháng 5','Tháng 6','Tháng 7','Tháng 8','Tháng 9','Tháng 10','Tháng 11','Tháng 12']
        , monthNamesShort: ['Tháng 1','Tháng 2','Tháng 3','Tháng 4','Tháng 5','Tháng 6','Tháng 7','Tháng 8','Tháng 9','Tháng 10','Tháng 11','Tháng 12']
        , changeMonth: true
        , changeYear: true
        , yearRange: '1950:2020'
    });
}

function loadDateTimepicker(element) {
    $(element).datetimepicker({
        dateFormat: 'dd/mm/yyyy HH:MM:ss'
        , dayNames: ['Chủ nhật', 'Thứ hai', 'Thứ ba', 'Thứ tư', 'Thứ năm', 'Thứ sáu', 'Thứ bảy']
        , dayNamesMin: ['CN', 'Hai', 'Ba', 'Tư', 'Năm', 'Sáu', 'Bảy']
        , dayNamesShort: ['CN', 'Hai', 'Ba', 'Tư', 'Năm', 'Sáu', 'Bảy']
        , monthNames: ['Tháng 1','Tháng 2','Tháng 3','Tháng 4','Tháng 5','Tháng 6','Tháng 7','Tháng 8','Tháng 9','Tháng 10','Tháng 11','Tháng 12']
        , monthNamesShort: ['Tháng 1','Tháng 2','Tháng 3','Tháng 4','Tháng 5','Tháng 6','Tháng 7','Tháng 8','Tháng 9','Tháng 10','Tháng 11','Tháng 12']
        , changeMonth: true
        , changeYear: true
        , yearRange: '1950:2020'
        , showOn: 'both'
        , buttonImage: '/images/button/calendar-up.gif'
        , buttonImageOnly: true
     });
}

function loadDateTimepickerFull(element) {

    $(element).datetimepicker({
        dateFormat: 'dd/mm/yyyy HH:MM:ss'
        , dayNames: ['Chủ nhật', 'Thứ hai', 'Thứ ba', 'Thứ tư', 'Thứ năm', 'Thứ sáu', 'Thứ bảy']
        , dayNamesMin: ['CN', 'Hai', 'Ba', 'Tư', 'Năm', 'Sáu', 'Bảy']
        , dayNamesShort: ['CN', 'Hai', 'Ba', 'Tư', 'Năm', 'Sáu', 'Bảy']
        , monthNames: ['Tháng 1','Tháng 2','Tháng 3','Tháng 4','Tháng 5','Tháng 6','Tháng 7','Tháng 8','Tháng 9','Tháng 10','Tháng 11','Tháng 12']
        , monthNamesShort: ['Tháng 1','Tháng 2','Tháng 3','Tháng 4','Tháng 5','Tháng 6','Tháng 7','Tháng 8','Tháng 9','Tháng 10','Tháng 11','Tháng 12']
        , changeMonth: true
        , changeYear: true
        , yearRange: '1950:2020'
        , showOn: 'both'
        , buttonImage: '/images/button/calendar-up.gif'
        , buttonImageOnly: true
     });
}

function loadTimepicker(element) {
    $(element).timeEntry({show24Hours: true, showSeconds: true});
}

function grid_checkbox(element)
{
    $(element).bind("click", function(){
        if ($(this).hasClass("lock"))
            return false;
            
        var id = $(this).attr("id");
        var checked;
        
        if (id == "")
        {
            checked = $(this).is(':checked');
            $(element).attr('checked', checked);
        }
        else
        {
            
        }
    });
}

function grid_chk_fix(clss)
{
    $(clss + " input[type='checkbox']").addClass($(clss).attr("class"));
    $(clss).first().addClass("first");
    $("input" + clss).bind("click", function(){
        if ($(this).hasClass("first"))
        {
            checked = $(this).is(':checked');
            $(clss).attr('checked', checked);
        }
        else
        {
            var t = 0;
            $("input" + clss + ":not(:first):checked").each(function(){
                t++;
            });
            
            if (t == ($("input" + clss).length - 1))
            {
                $(clss + ":first").attr('checked', true);
            }
            else
            {
                $(clss + ":first").attr('checked', false);
            }
        }
    });
}

function getHost()
{
    pathArray = location.href.split( '/' );
    host = pathArray[2];
    return host;
}

/* --- Load nhom 3 dropdownlist branch depart job --- */
function loadBranchDepartJob()
{
    $(".ddlBranch").bind("change", function(){
        $("input[id$='hidDepart']").val("");
        $("input[id$='txtDepart']").val("");
        $("input[id$='hidJob']").val("");
        $("input[id$='txtJob']").val("");
    
        loadDepart()
    });
}

function loadDepart()
{
    var branchid = $("select[id$='ddlBranch']").val();
    var _url = "/Portal/Webservices/Position.aspx";
    var _data = "op=depart&id=" + branchid;
    $(".ddlDepart").attr("disabled", "disabled");
    $(".ddlJob").attr("disabled", "disabled");
    
    
    $.ajax({
        url: _url,
        data: _data,
        cache: false,
        success: function(html){
            var obj = $(html);
            obj.find(".ddlDepart").bind("change", function(){
                $("input[id$='hidDepart']").val($(this).val());
                $("input[id$='txtDepart']").val($(this).val());
                $("input[id$='hidJob']").val("");
                $("input[id$='txtJob']").val("");
                loadJob();
            });
            loadJob();
            $("#divDepart").html(obj);
            $("select[id$='ddlDepart']").val($("input[id$='hidDepart']").val());
        },
        error: function(){
        }
    });
}

function loadJob()
{
    var branchid = $("select[id$='ddlBranch']").val();
    var departid = $("select[id$='ddlDepart']").val();
    var _url = "/Portal/Webservices/Position.aspx";
    var _data = "op=job&b=" + branchid + "&d=" + departid;
    $(".ddlJob").attr("disabled", "disabled");
    
    $.ajax({
        url: _url,
        data: _data,
        cache: false,
        success: function(html){
            var obj = $(html);
            obj.find(".ddlJob").bind("change", function(){
                $("input[id$='hidJob']").val($(this).val());
                $("input[id$='txtJob']").val($(this).val());
            });
            $("#divJob").html(obj);
            
            $("select[id$='ddlJob']").val($("input[id$='hidJob']").val());
        },
        error: function(){
        }
    });
}

/* --- end --- */